package reflect;

import java.lang.reflect.Method;
import java.util.Scanner;

/**
 *  * java反射机制
 *  *
 *  * 反射是java的动态机制，可以允许我们在程序[运行期间]再确定实例化，调用某个方法，操作某个属性。
 *  * 反射机制大大的提高了代码的灵活度，但是会有更高的系统开销和较慢的运行效率。
 *  * 因此反射机制不能被过度的使用
 */
public class ReflectDemo1 {
    public static void main(String[] args) throws ClassNotFoundException {
        //Class cls = String.class;
        //Class cls = ArrayList.class;
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入类名：");
        String className = scanner.nextLine();
        Class cls = Class.forName(className);
        Class cls1 = int.class;
        String name = cls.getName();
        Package pack = cls.getPackage();
        Method[] methods = cls.getMethods();
        for (Method method : methods) {
            System.out.println(method.getName()+"()");
        }

        String str = pack.getName();
        System.out.println(str);
        System.out.println(name);
        name = cls1.getName();
        System.out.println(name);

    }
}
